home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / Sultan.dxr / scripts_4_misc. handlers.ls < prev    next >
Encoding:
Text File  |  2002-01-25  |  4.6 KB  |  178 lines

  1. global waste, reserve, stock, points, pootimer, deals
  2.  
  3. on reshuffle arg
  4.   sprite(arg).member = member("backofcard", "playing cards")
  5.   sprite(19).member = member("block", "playing cards")
  6.   sprite(17).member = member("block", "playing cards")
  7.   ass = []
  8.   repeat with i = 1 to waste.cards.count
  9.     ass.add([#rank: waste.cards[i].rank, #suit: waste.cards[i].suit])
  10.   end repeat
  11.   waste.cards.deleteAll()
  12.   return ass
  13. end
  14.  
  15. on shuffle
  16.   ranks = ["ace", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "jack", "queen", "king"]
  17.   suits = ["hearts", "diamonds", "clubs", "spades"]
  18.   unshuffledCards = []
  19.   shuffledCards = []
  20.   repeat with i = 1 to 2
  21.     repeat with rank in ranks
  22.       repeat with suit in suits
  23.         unshuffledCards.add([#rank: rank, #suit: suit])
  24.       end repeat
  25.     end repeat
  26.     repeat while unshuffledCards.count > 0
  27.       shuffledCards.add(unshuffledCards[random(unshuffledCards.count)])
  28.       unshuffledCards.deleteOne(shuffledCards[shuffledCards.count])
  29.     end repeat
  30.   end repeat
  31.   repeat with tempcard in ["ace_hearts", "king_hearts", "king_spades", "king_diamonds", "king_clubs", "king_hearts", "king_spades", "king_diamonds", "king_clubs"]
  32.     repeat with i = 1 to shuffledCards.count
  33.       if (shuffledCards[i].rank & "_" & shuffledCards[i].suit) = tempcard then
  34.         shuffledCards.deleteAt(i)
  35.         exit repeat
  36.       end if
  37.     end repeat
  38.   end repeat
  39.   return shuffledCards
  40. end
  41.  
  42. on checkwin
  43.   if points = (95 * 10) then
  44.     pootimer = timeout("poo").new(150, #gotoit)
  45.   else
  46.     if (stock.cards.count = 0) and (deals = 3) then
  47.       checklose()
  48.     end if
  49.   end if
  50. end
  51.  
  52. on gotoit
  53.   pootimer.forget()
  54.   win = "yes"
  55.   go("gameover")
  56. end
  57.  
  58. on makesymbol arg
  59.   return string(arg).symbol
  60. end
  61.  
  62. on getlist arg
  63.   if arg = 19 then
  64.     return waste.getlastcard()
  65.   end if
  66.   if (arg >= 29) and (arg <= 36) then
  67.     return reserve[makesymbol(arg)].getlastcard()
  68.   end if
  69. end
  70.  
  71. on checklose
  72.   if stock.cards.count = 0 then
  73.     if deals = 3 then
  74.       repeat with shits in [19, 33, 34, 35, 36, 29, 30, 31, 32]
  75.         if sprite(shits).member.name = "block" then
  76.           next repeat
  77.         end if
  78.         repeat with asshole = 20 to 28
  79.           if asshole = 20 then
  80.             next repeat
  81.           end if
  82.           if ((getValue(sprite(shits).member.name) = (getValue(sprite(asshole).member.name) + 1)) or ((getValue(sprite(shits).member.name) = 1) and (getValue(sprite(asshole).member.name) = 13) and (asshole <> 25))) and (getSuit(sprite(shits).member.name) = getSuit(sprite(asshole).member.name)) then
  83.             abort()
  84.           end if
  85.         end repeat
  86.       end repeat
  87.       win = "no"
  88.       pootimer = timeout("poo").new(50, #gotoit)
  89.     end if
  90.   end if
  91. end
  92.  
  93. on getValue arg
  94.   if (arg contains "hearts") or (arg contains "spades") then
  95.     return getOff(chars(arg, 1, arg.length - 7))
  96.   else
  97.     if arg contains "diamonds" then
  98.       return getOff(chars(arg, 1, arg.length - 9))
  99.     else
  100.       if arg contains "clubs" then
  101.         return getOff(chars(arg, 1, arg.length - 6))
  102.       end if
  103.     end if
  104.   end if
  105. end
  106.  
  107. on getOff numba
  108.   if numba = "ace" then
  109.     return 1
  110.   else
  111.     if numba = "two" then
  112.       return 2
  113.     else
  114.       if numba = "three" then
  115.         return 3
  116.       else
  117.         if numba = "four" then
  118.           return 4
  119.         else
  120.           if numba = "five" then
  121.             return 5
  122.           else
  123.             if numba = "six" then
  124.               return 6
  125.             else
  126.               if numba = "seven" then
  127.                 return 7
  128.               else
  129.                 if numba = "eight" then
  130.                   return 8
  131.                 else
  132.                   if numba = "nine" then
  133.                     return 9
  134.                   else
  135.                     if numba = "ten" then
  136.                       return 10
  137.                     else
  138.                       if numba = "jack" then
  139.                         return 11
  140.                       else
  141.                         if numba = "queen" then
  142.                           return 12
  143.                         else
  144.                           if numba = "king" then
  145.                             return 13
  146.                           end if
  147.                         end if
  148.                       end if
  149.                     end if
  150.                   end if
  151.                 end if
  152.               end if
  153.             end if
  154.           end if
  155.         end if
  156.       end if
  157.     end if
  158.   end if
  159. end
  160.  
  161. on getSuit arg
  162.   if arg contains "hearts" then
  163.     return #hearts
  164.   else
  165.     if arg contains "diamonds" then
  166.       return #diamonds
  167.     else
  168.       if arg contains "clubs" then
  169.         return #clubs
  170.       else
  171.         if arg contains "spades" then
  172.           return #spades
  173.         end if
  174.       end if
  175.     end if
  176.   end if
  177. end
  178.